"""
浅拷贝

copy函数是浅拷贝，只对可变类型的第一层对象进行拷贝，
对拷贝的对象开辟新的内存空间进行存储，不会拷贝对象内部的子对象。

不可变类型浅拷贝不会给拷贝的对象开辟新的内存空间，而只是拷贝了这个对象的引用
"""
import copy

a = [1, 2, 3]
b = [11, 22, 33]
c = [a, b]

# 1.普通赋值
d = c
print("id(c):", id(c))
print("id(d):", id(d))

# 2.浅拷贝可变类型
d = copy.copy(c)
print("id(c):", id(c))
print("id(d):", id(d))

# 3.浅拷贝深层数据
print("id(c[0]):", id(c[0]))
print("id(d[0]):", id(d[0]))

# 4.浅拷贝不可变类型
c = (a, b)
d = copy.copy(c)
print("id(c):", id(c))
print("id(d):", id(d))
print("id(c[0]):", id(c[0]))
print("id(d[0]):", id(d[0]))
